export default class ConfigurationData{
  siddhiAppConfig = [];
  edgeList = [];
  // checks whether still the graph is drawing from the JSON sent from backend when switching from code
  // to design
  isStillDrawingGraph = false;
  isDesignViewContentChanged = false;
  application = [];
  rawExtensions = [];

  constructor(siddhiAppConfig, application, rawExtensions){
    this.siddhiAppConfig = siddhiAppConfig;
    this.edgeList = [];
    // checks whether still the graph is drawing from the JSON sent from backend when switching from code
    // to design
    this.isStillDrawingGraph = false;
    this.isDesignViewContentChanged = false;
    this.application = application;
    this.rawExtensions = rawExtensions;
  }

  addEdge = function (edge) {
    this.edgeList.push(edge);
  };

  removeEdge = function (edgeId) {
    ElementUtils.prototype.removeElement(this.edgeList, edgeId);
  };

  getSiddhiAppConfig = function () {
    return this.siddhiAppConfig;
  };

  getEdge = function (edgeId) {
    return ElementUtils.prototype.getElement(this.edgeList, edgeId);
  };
  getEdgeList = function () {
    return this.edgeList;
  };

  getIsStillDrawingGraph = function () {
    return this.isStillDrawingGraph;
  };

  getIsDesignViewContentChanged = function () {
    return this.isDesignViewContentChanged;
  };

  setSiddhiAppConfig = function (siddhiAppConfig) {
    this.siddhiAppConfig = siddhiAppConfig;
  };

  setEdgeList = function (edgeList) {
    this.edgeList = edgeList;
  };
  setIsStillDrawingGraph = function (isStillDrawingGraph) {
    this.isStillDrawingGraph = isStillDrawingGraph;
  };

  setIsDesignViewContentChanged = function (isDesignViewContentChanged) {
    var self = this;
    self.isDesignViewContentChanged = isDesignViewContentChanged;
    //var activeTab = self.application.tabController.getActiveTab();
    //var file = activeTab.getFile();
    // If the graph is not drawing from the JSON sent from the backend when switching from code to design, then
    // if a change is done in the design then app is stop if it is still running or debugging.
    if (!self.isStillDrawingGraph && isDesignViewContentChanged
      && (file.getRunStatus() || file.getDebugStatus())) {
     // var launcher = activeTab.getSiddhiFileEditor().getLauncher();
      //launcher.stopApplication(self.application.workspaceManager, false);
    }
  };
}
